home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 145 / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan).7z / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan) (Track 1).bin / ikap / etc / f45 / f45view.c < prev    next >
C/C++ Source or Header  |  2000-05-08  |  1KB  |  67 lines

  1. /*
  2. 「4x5ドットビットマップフォントファイル」をC用のソースファイルに変換
  3. */
  4.  
  5. #include    <stdio.h>
  6. #include    <graph.h>
  7.  
  8.  
  9. /*
  10. patのデータを指定座標から4x5ドットビットマップ情報(3バイト)に表示
  11. */
  12. int    putFont4x5(fx,fy,pataddr)
  13. int    fx,fy;
  14. unsigned char    *pataddr;
  15. {
  16.     int    x,y,b,pat;
  17.     unsigned char buf[4];
  18.  
  19.     buf[0]=0;
  20.     buf[1]=pataddr[0];
  21.     buf[2]=pataddr[1];
  22.     buf[3]=pataddr[2];
  23.     pat=*(int *) (&buf);
  24.  
  25.     b=23;
  26.     for( y=0; y<5; y++ ){ ; for( x=0; x<4; x++ ){
  27.         if( (pat&(1<<b)) ){
  28.             pset(fx+x,fy+y,0xffff);
  29.         }
  30.         b--;
  31.     }}
  32. }
  33.  
  34.  
  35. /*                    code      */
  36. unsigned char fontBuf[0x100][3];
  37.  
  38. int    main(argc,argv)
  39. int    argc;
  40. char    *argv[];
  41. {
  42.     short    fx,fy,fcode;
  43.     
  44.     {
  45.         FILE    *fp;
  46.         fp=fopen(argv[1],"rb");
  47.         if( fp==NULL ){
  48.             goto quick_exit;
  49.         }
  50.         fread(fontBuf,sizeof(unsigned char),sizeof(fontBuf),fp);
  51.         fclose(fp);
  52.     }
  53.  
  54.     for( fy=0; fy<=0x0f; fy++ ){
  55.         for( fx=0; fx<=0x0f; fx++ ){
  56.             fcode=fy*0x10+fx;
  57.             putFont4x5(fx*4,fy*5,fontBuf[fcode]);
  58.         }
  59.     }
  60.  
  61. quick_exit:
  62.     return(0);
  63. }
  64.  
  65.  
  66.  
  67.